/obj/test/math/verb
	Gcd_test()
		AssertEqual(Math.Gcd(75, 100), 25)
		AssertEqual(Math.Gcd(-5, -10), -5)
		AssertEqual(Math.Gcd(7, 13), 1)

	Factorial_test()
		AssertEqual(Math.Factorial(0), 1)
		AssertEqual(Math.Factorial(1), 1)
		AssertEqual(Math.Factorial(2), 2)
		AssertEqual(Math.Factorial(3), 6)
		AssertEqual(Math.Factorial(4), 24)
		AssertEqual(Math.Factorial(5), 120)

	IsEven_test()
		Assert(Math.IsEven(2))
		Assert(Math.IsEven(-2))
		Assert(!Math.IsEven(3))
		Assert(!Math.IsEven(-3))

	IsInRange_test()
		Assert(Math.IsInRange(50,  0,  100))
		Assert(Math.IsInRange(0,   0,  100))
		Assert(Math.IsInRange(100, 0,  100))
		Assert(!Math.IsInRange(0,  1,  100))

	IsOdd_test()
		Assert(!Math.IsOdd(2))
		Assert(!Math.IsOdd(-2))
		Assert(Math.IsOdd(3))
		Assert(Math.IsOdd(-3))

	Mean_test()
		AssertEqual(Math.Mean(1,2,3,4,5), 3)

	Root_test()
		AssertEqual(Math.Root(2, 42), sqrt(42))

	SolveQuadratic_test()
		var/list/solutions = Math.SolveQuadratic(1, 3, -4)
		AssertEqual(solutions.len, 2)
		Assert(solutions.Find(-4))
		Assert(solutions.Find(1))
		solutions = Math.SolveQuadratic(9, 12, 4)
		AssertEqual(solutions.len, 1)
		AssertAboutEqual(solutions[1], -2 / 3)

	Wrap_test()
		AssertEqual(Math.Wrap(0, 0, 100), 	0)
		AssertEqual(Math.Wrap(0, 1, 100),	99)
		AssertEqual(Math.Wrap(100, 0, 100), 0)
		AssertEqual(Math.Wrap(101, 0, 100), 1)
		AssertEqual(Math.Wrap(50, 0,  100), 50)
		AssertEqual(Math.Wrap(50, 20, 100), 50)
		AssertEqual(Math.Wrap(50, 50, 100), 50)